package com.netease.domain;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

/**
 * Created by dongle on 2017/2/27.
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class MicroserviceDetail {
    public static class Service_info {
        private Long id;

        private String namespace;

        private Integer replicas;

        private String status;

        private String service_name;

        private String spec_info;

        private String port_maps;

        private Integer stateful;

        private String state_public_net;

        private Long extends_disk_size;

        private String pub_ip;

        private Integer stop_service;

        public void setId(Long id){
            this.id = id;
        }
        public Long getId(){
            return this.id;
        }
        public void setNamespace(String namespace){
            this.namespace = namespace;
        }
        public String getNamespace(){
            return this.namespace;
        }
        public void setReplicas(Integer replicas){
            this.replicas = replicas;
        }
        public Integer getReplicas(){
            return this.replicas;
        }
        public void setStatus(String status){
            this.status = status;
        }
        public String getStatus(){
            return this.status;
        }
        public void setService_name(String service_name){
            this.service_name = service_name;
        }
        public String getService_name(){
            return this.service_name;
        }
        public void setSpec_info(String spec_info){
            this.spec_info = spec_info;
        }
        public String getSpec_info(){
            return this.spec_info;
        }
        public void setPort_maps(String port_maps){
            this.port_maps = port_maps;
        }
        public String getPort_maps(){
            return this.port_maps;
        }
        public void setStateful(Integer stateful){
            this.stateful = stateful;
        }
        public Integer getStateful(){
            return this.stateful;
        }
        public void setState_public_net(String state_public_net){
            this.state_public_net = state_public_net;
        }
        public String getState_public_net(){
            return this.state_public_net;
        }
        public void setExtends_disk_size(Long extends_disk_size){
            this.extends_disk_size = extends_disk_size;
        }
        public Long getExtends_disk_size(){
            return this.extends_disk_size;
        }
        public void setPub_ip(String pub_ip){
            this.pub_ip = pub_ip;
        }
        public String getPub_ip(){
            return this.pub_ip;
        }
        public void setStop_service(Integer stop_service){
            this.stop_service = stop_service;
        }
        public Integer getStop_service(){
            return this.stop_service;
        }

    }
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Envs {
        private String key;

        private String value;

        public void setKey(String key){
            this.key = key;
        }
        public String getKey(){
            return this.key;
        }
        public void setValue(String value){
            this.value = value;
        }
        public String getValue(){
            return this.value;
        }

    }
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Volumes {
        private String name;

        private String mount_path;

        public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return this.name;
        }
        public void setMount_path(String mount_path){
            this.mount_path = mount_path;
        }
        public String getMount_path(){
            return this.mount_path;
        }

    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Service_container_infos {
        private List<Envs> envs ;

        private String command;

        private List<Volumes> volumes ;

        private Long container_id;

        private String container_name;

        private List<String> ssh_keys ;

        private List<String> log_dirs ;

        private String image_path;

        private String repo_name;

        private String image_tag;

        //private List<Local_disk_info> local_disk_info ;

        private Integer cpu_weight;

        private Integer memory_weight;

        private List<String> docker_container_ids ;

        public void setEnvs(List<Envs> envs){
            this.envs = envs;
        }
        public List<Envs> getEnvs(){
            return this.envs;
        }
        public void setCommand(String command){
            this.command = command;
        }
        public String getCommand(){
            return this.command;
        }
        public void setVolumes(List<Volumes> volumes){
            this.volumes = volumes;
        }
        public List<Volumes> getVolumes(){
            return this.volumes;
        }
        public void setContainer_id(Long container_id){
            this.container_id = container_id;
        }
        public Long getContainer_id(){
            return this.container_id;
        }
        public void setContainer_name(String container_name){
            this.container_name = container_name;
        }
        public String getContainer_name(){
            return this.container_name;
        }
        public void setImage_path(String image_path){
            this.image_path = image_path;
        }
        public String getImage_path(){
            return this.image_path;
        }
        public void setRepo_name(String repo_name){
            this.repo_name = repo_name;
        }
        public String getRepo_name(){
            return this.repo_name;
        }
        public void setImage_tag(String image_tag){
            this.image_tag = image_tag;
        }
        public String getImage_tag(){
            return this.image_tag;
        }
//        public void setLocal_disk_info(List<Local_disk_info> local_disk_info){
//            this.local_disk_info = local_disk_info;
//        }
//        public List<Local_disk_info> getLocal_disk_info(){
//            return this.local_disk_info;
//        }
        public void setCpu_weight(Integer cpu_weight){
            this.cpu_weight = cpu_weight;
        }
        public Integer getCpu_weight(){
            return this.cpu_weight;
        }
        public void setMemory_weight(Integer memory_weight){
            this.memory_weight = memory_weight;
        }
        public Integer getMemory_weight(){
            return this.memory_weight;
        }
        public List<String> getSsh_keys() {
            return ssh_keys;
        }

        public void setSsh_keys(List<String> ssh_keys) {
            this.ssh_keys = ssh_keys;
        }

        public List<String> getLog_dirs() {
            return log_dirs;
        }

        public void setLog_dirs(List<String> log_dirs) {
            this.log_dirs = log_dirs;
        }

        public List<String> getDocker_container_ids() {
            return docker_container_ids;
        }

        public void setDocker_container_ids(List<String> docker_container_ids) {
            this.docker_container_ids = docker_container_ids;
        }
    }

    private Service_info service_info;

    private List<Service_container_infos> service_container_infos ;

    public void setService_info(Service_info service_info){
        this.service_info = service_info;
    }
    public Service_info getService_info(){
        return this.service_info;
    }
    public void setService_container_infos(List<Service_container_infos> service_container_infos){
        this.service_container_infos = service_container_infos;
    }
    public List<Service_container_infos> getService_container_infos(){
        return this.service_container_infos;
    }

}
